In large broadcast networks, data to be broadcast, such as a large file, may be sent with a strong Forward Error Correction (FEC) code such as a Reed-Solomon (RS) code, which can be used to correct transmission errors and missing data. If the number of errors and erasures in the broadcast data exceeds the error correcting capability of the FEC code, repetitive transmission may be used. For a large number of receiving terminals, or Very Small Aperture Terminals (VSATs), in a satellite network, it may possible that some VSATs have more errors and erasures in their receipt of the broadcast data than can be corrected using the FEC code. VSATs may also miss portions of the broadcast data due to, for example, power failures. The broadcast data may be repeated several times.
A variation of this scheme, called a carousel, may be used for video broadcast, which may send a program periodically over and over again. For such applications, Fountain codes, also known as Raptor codes or Tornado codes, may be used. Redundancy in the broadcast data may be generated as linear combination of data bytes. Data transmitted over the air includes a linear combination of the data. Fountain codes cannot be better at error correction than the Reed-Solomon codes, which are theoretically optimal. Fountain codes may have a less rigid structure and may be simpler to implement than Reed-Solomon codes.
Reed-Solomon code or Fountain code based systems may be meant to work in a one-way broadcast network where the receivers do not have a way to request retransmission of data. With a return link, terminals, such as VSATs, can correct erroneously received packets in received data, such as a large file, by requesting retransmission on a packet by packet basis. Targeted retransmission may be more efficient than blindly sending the entirety of the data several times. Once the first transmission is completed, channels may be used for retransmission only when a VSAT requests retransmission. The Automatic Repeat Request (ARQ) is a well-known technique which works very well for communications between one transmitter and one receiver. In a single transmitter/multiple receiver case, however, the number of retransmissions increases as the size of receiver population, as the errors at different receivers are different. For a broadcast network with hundreds or thousands of receiving terminals, the number of retransmissions increases by two or three orders of magnitudes respectively.